<?php

namespace Org\Util;

class Collect
{
    /**
     * 将数组$data合并入数组$array指定key位置之后
     * @param array $array 当前数组
     * @param array $data 合并数组
     * @param bool $key 指定合并Key值
     * @return array
     */
    public static function insert(array $array, array $data, $key = false)
    {
        $offset = ($key === false) ? false : array_search($key, array_keys($array));
        $offset = ($offset) ? $offset : false;
        if ($offset) {
            return array_merge(
                array_slice($array, 0, $offset),
                $data,
                array_slice($array, $offset)
            );
        } else {  // 没指定 $key 或者找不到，就直接加到末尾
            return array_merge($array, $data);
        }
    }

    /**
     * 将数组$data合并入数组$array中随机元素之后
     * @param array $array
     * @param array $data
     * @return array
     */
    public static function randInsert(array $array, array $data)
    {
        $key = array_rand($array);
        return self::insert($array, $data, $key);
    }
}